Software running in a datacenter increasingly performs business critical application, and such software is increasingly run on virtual machines (VMs). Hardware failure is one of the main failures that cause downtime in the datacenter. For example, if a host fails, the VMs running on the host will also fail and the software running on the VMs will be unavailable. Some hypervisors support high-availability (HA) features that react to failures by failing over VMs to healthy hosts. However, until the failover process completes, the software applications running on the VMs are unavailable. Moreover, hardware failures typically result in loss of in-memory state. As such, even with HA, hardware failures can still have a performance impact in the datacenter.